<?php

class login_line {
    public function __construct() {
        /*
         *   设定LINE接口配置
         */
        $this->api = "http://api.fanyi.baidu.com/api/trans/vip/translate";
        $this->appid = "20180522000163934";
        $this->key = "HVhoa_DqUo78uDOB1bqZ";
        //回调URL

    }

    public function index() {
        // 获取回调

        $langs = array(
            '常見問題' => 'よくある問題',
        );
        $tos = array('kor', 'hak');

        $this->tran_arr($langs, 'auto', $tos);
        // echo '<pre>';
        // var_dump($langs_str);

    }

/*
 *     输入语言
 *     参数 $langs : 需要翻译的数组
 *     参数 $form : 翻译的源语言    aoto自动检测 yue粤语 zh中文 http://api.fanyi.baidu.com/doc/21
 *     参数 $to ： 需要翻译的目标语言数组
 *     返回 string 返回翻译结果
 */
    public function tran_arr($langs = array(), $from = 'auto', $tos = array()) {
        foreach ($tos as $to) {
            $langs_str = "<?php \n /*语言包:" . $to . "*/ \n return array( \n"; //字符串头部
            foreach ($langs as $k => $v) {
                echo "正在翻译" . $k . "=>";
                $tar_lang = $this->transform($k, 'auto', $to);
                $langs_str .= $langs_str .= "\"" . $k . "\"=>\"" . $tar_lang . "\",\n";
                echo $tar_lang . "\n";
                sleep(1.5);
            }
            // 追加字符串末尾
            $langs_str .= "); \n?>";
            // 输出文件
            $file = fopen('./' . $to . '.php', 'w');
            fwrite($file, mb_convert_encoding($langs_str, 'UTF-8', mb_detect_encoding($langs_str)));
            fclose($file);
        }
    }

/*
 *   翻译接口
 *     参数 $q : 需要翻译的文字
 *     参数 $form : 翻译的源语言    aoto自动检测 yue粤语 zh中文 http://api.fanyi.baidu.com/doc/21
 *     参数 $to ： 目标语言 yue粤语 zh中文 http://api.fanyi.baidu.com/doc/21
 *       返回 string 返回翻译结果
 */

    public function transform($q, $form, $to) {
        $salt = '233';
        $api = $this->api;
        $appid = $this->appid;
        $key = $this->key;
        $data = array(
            'q' => $q,
            'from' => 'auto',
            'to' => $to,
            'appid' => $appid,
            'salt' => $salt,
            'sign' => md5($appid . $q . $salt . $key),
        );
        $result = $this->request('POST', $api, '0', $data);
        return $result['trans_result'][0]['dst'];

    }

/*
 * CURL方法
 *   method：GET/POST
 *   url:请求链接
 *   data：参数,
 *   header: 请求头
 */
    function request($method = 'GET', $url = '', $header = array(), $data = array()) {
        $ch = curl_init(); //创建cURL资源
        // 格式化参数
        $data = http_build_query($data);
        $url = ($method == 'GET') ? ($url . $data) : $url; //设定get / post不同的url
        // 设置默认URL选项
        $defaults = array(
            CURLOPT_POST => ($method == 'POST') ? 1 : 0,
            CURLOPT_HEADER => empty($header) ? 0 : $header,
            CURLOPT_URL => $url,
            CURLOPT_FRESH_CONNECT => 1,
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_FORBID_REUSE => 1,
            CURLOPT_TIMEOUT => 4,
            CURLOPT_POSTFIELDS => ($method == 'POST') ? $data : 0,
        );
        $options = array();
        curl_setopt_array($ch, ($defaults + $options));
        // 抓取URL并将它传递给浏览器
        $output = curl_exec($ch);
        // 关闭cURL资源，并释放系统资源
        curl_close($ch);
        // 返回请求结果
        return json_decode($output, true);
    }
}
$login = new login_line;
$login->index();